یکی دیگر از شیوههای رمزنگاری ابتدایی، پیچیدن یک نوار کاغذی بر روی استوانهای با قطر مشخص و سپس نوشتن پیام روی کاغذ پیچیده شده بودهاست. بدیهی است بدون اطلاع از مقدار قطر استوانه، خواندن پیام کار بسیار دشواری خواهد بود و تنها کسانی که نسخههای یکسانی از استوانه را داشته باشند میتوانند پیام را بخوانند.
در قرن بیستم میلادی از همین روش به همراه موتورهای الکتریکی برای رمزنگاری با سرعت بالا استفاده شد که نمونههای آن در ماشین رمز لورنتز و ماشین رمز انیگما دیده میشود.
یکی دیگر از شیوههای رمزنگاری ابتدایی، پیچیدن یک نوار کاغذی بر روی استوانهای با قطر مشخص و سپس نوشتن پیام روی کاغذ پیچیده شده بودهاست. بدیهی است بدون اطلاع از مقدار قطر استوانه، خواندن پیام کار بسیار دشواری خواهد بود و تنها کسانی که نسخههای یکسانی از استوانه را داشته باشند میتوانند پیام را بخوانند.
در قرن بیستم میلادی از همین روش به همراه موتورهای الکتریکی برای رمزنگاری با سرعت بالا استفاده شد که نمونههای آن در ماشین رمز لورنتز و ماشین رمز انیگما دیده میشود.
نمونهای از روش رمز کردن موسوم به رمز سزار که بر اساس جابجایی ساده حروف الفبا عمل میکند
ماشین رمزنگاری هیل
وجود شاخصهای آماری برای دو یا سه حرفی ها، لستر اس.هیل را به این فکر واداشت که بایستی بیش از سه حرف را در هم ادغام کرد تا بلکه استحکام بیشتریدر مقابل حملات مبتنی بر شاخص های آماری متن، بوجود بیاید. این ریاضی دان از جبر ماتریسی بهره گرفت.
اصول ششگانه کرکهف
آگوست کرکهف در سال ۱۸۸۳ دو مقاله با عنوان «رمز نگاری نظامی» منتشر کرد. در این دو مقاله شش اصل اساسی وجود داشت که اصل دوم آن به عنوان یکی از قوانین رمز نگاری هنوز هم مورد استفاده دانشمندان در رمز نگاری پیشرفتهاست:
سیستم رمزنگاری اگر نه به لحاظ تئوری که در عمل غیر قابل شکست باشد.
سیستم رمز نگاری باید هیچ نکته پنهان و محرمانهای نداشته باشد. بلکه تنها چیزی که سری است کلید رمز است.
کلید رمز باید به گونهای قابل انتخاب باشد که اولا بتوان براحتی آن را عوض کرد و ثانیا بتوان آنرا به خاطر سپرد و نیازی به یاداشت کردن کلید رمز نباشد.
متون رمز نگاری باید از طریق خطوط تلگراف قابل مخابره باشند.
دستگاه رمز نگاری یا اسناد رمز شده باید توسط یکنفر قابل حمل و نقل باشد.
سیستم رمزنگاری باید به سهولت قابل راه اندازی باشد.
رمزنگاری پیشرفته
با پدید آمدن رایانهها و افزایش قدرت محاسباتی آنها، دانش رمزنگاری وارد حوزه علوم رایانه گردید و این پدیده، موجب بروز سه تغییر مهم در مسائل رمزنگاری شد:
- وجود قدرت محاسباتی بالا این امکان را پدید آورد که روشهای پیچیدهتر و مؤثرتری برای رمزنگاری به وجود آید.
- روشهای رمزنگاری که تا قبل از آن اصولا برای رمز کردن پیام به کار میرفتند، کاربردهای جدید و متعددی پیدا کردند.
- تا قبل از آن، رمزنگاری عمدتاً روی اطلاعات متنی و با استفاده از حروف الفبا انجام میگرفت؛ اما ورود رایانه باعث شد که رمزنگاری روی انواع اطلاعات و بر مبنای بیت انجام شود.
دلیل رمزنگاری اطلاعات در کامپیوتر
گسترش و رشد بي سابقه اينترنت باعث ايجاد تغييرات گسترده در نحوه زندگی و فعاليت شغلی افراد ، سازمانها و موسسات شده است. امنيت اطلاعات يکی از مسائل مشترک شخصيت های حقوقی و حقيقی است . اطمينان از عدم دستيابی افراد غير مجاز به اطلاعات حساس از مهمترين چالش های امنيتی در رابطه با توزيع اطلاعات در اينترنت است . اطلاعات حساس که ما تمايلی به مشاهده آنان توسط ديگران نداريم، موارد متعددی را شامل می شود. برخی از اينگونه اطلاعات بشرح زير می باشند :
- • اطلاعات کارت اعتباری
- • شماره های عضويت در انحمن ها
- • اطلاعات خصوصی
- • جزئيات اطلاعات شخصی
- • اطلاعات حساس در يک سازمان
- • اطلاعات مربوط به حساب های بانکی
برخی اصطلاحات
Encryption : در علم cryptography به پنهان سازی اطلاعات گفته میشود.
▪ Decryption : معکوس ncryption است و درcrypto به آشکار سازی اطلاعات پنهان شده گفته میشود.
▪ Plain text: به متنی گفته میشود که معنای آن بدون تغییر خاصی قابل درک است.
▪ Cipher: به روشی برای تبدیل plain text به متنی که معنای آن پنهان باشدcipher گفته میشود.
▪ Cryptanalysis : : به هنر شکستن متون cipher شده گفته میشود.
▪ Intruder: در لغت به معنای مزاحم است ولی در اینجا به معنای کسی است که یک کپی از cipher text دارد و تمایل به شکستن رمز دارد. منظور از شکستن رمز یعنی decrypt کردن آن متن که خود دو نوع است activeintruder که میتواند اطلاعات را روی خط عوض کند و تغییر دهد و passive intruder که فقط میتواند اطلاعات روی خط را داشته باشد و قابلیت تغییر آنها را ندارد.
▪ Intrusion Points: نقاطی که یک نفوذگر بتواند به اطلاعات با ارزش دست پیدا کند.
▪ Internal Access Point: : به سیستمهایی گویند که در اتاق یا در شبکه داخلی مستقرند و هیچ امنیتی Local Security)) روی آنها تنظیم نشده باشد و احتمال حمله به آنها وجود دارد.
▪ External Access Point : تجهیزاتی که ما را به شبکه خارجی مانند اینترنت متصل میکنند یا Applicationهایی که از طریق اینترنت کار میکنند و احتمال حمله به آنها وجود دارد.
اصطلاحات و انواع رمز نگاري
1- متن ساده: اطلاعات اوليه كه هنوز رمز نگاري نشده اند
2- متن رمزي: اطلاعاتي كه رمز نگاري شده اند
3- الگوريتم رمز نگاري: الگوريتمي كه متن ساده را به متن رمزي تبديل مي كند
4-كليد رمز: داده اي است كه الگوريتم رمز نگاري متن ساده را به متن رمزي تبديل مي كند و برعكس
5- رمز نگاري: فرايند تبديل متن ساده به متن رمزي است
6- رمز گشايي: فرايند تبديل متن رمزي به متن ساده است
استفاده از رمزنگاري سه سرويس امنيتي فراهم مي شود:
1- محرمانه سازي:
اطلاعات به هنگام ارسال يا ذخيره شدن از ديد افراد غير مجاز پنهان خواهد شد.
2- تــمــامـيــت:
تغييرات اعمال شده در اطلاعات ارسالي مشخص خواهد شد.
3- اعتبار سنجي:
مي توان منبع اطلاعات را اعتبار سنجي كرد.
سرویس رمزنگاری
به طور کلی، سرویس رمزنگاری، به قابلیت و امکانی اطلاق میشود که بر اساس فنون رمزنگاری حاصل میگردد. قبل از ورود رایانهها به حوزه رمزنگاری، تقریباً کاربرد رمزنگاری محدود به رمز کردن پیام و پنهان کردن مفاد آن میشدهاست. اما در رمزنگاری پیشرفته سرویسهای مختلفی از جمله موارد زیر ارائه گردیدهاست:
- • محرمانگی یا امنیت محتوا : ارسال یا ذخیره اطلاعات به نحوی که تنها افراد مجاز بتوانند از محتوای آن مطلع شوند، که همان سرویس اصلی و اولیه پنهان کردن مفاد پیام است.
سلامت محتوا : به معنای ایجاد اطمینان از صحت اطلاعات و عدم تغییر محتوای اولیه آن در حین ارسال است. تغییر محتوای اولیه اطلاعات ممکن است به صورت اتفاقی (در اثر مشکلات مسیر ارسال) و یا به صورت عمدی باشد.
احراز هویت یا اصالت محتوا : به معنای تشخیص و ایجاد اطمینان از هویت ارسالکننده اطلاعات و عدم امکان جعل هویت افراد میباشد.
عدم انکار: به این معنی است که ارسالکننده اطلاعات نتواند در آینده ارسال آن را انکار یا مفاد آن را تکذیب نماید.
رمزنگاری به صورت سخت افزاری
الگوریتمهای رمزنگاری رامی توان هم به صورت سخت افزاری(به منظورسرعت بالاتر) وهم به صورت نرم افزاری (برای انعطاف پذیری بیشتر) پیاده سازی کرد روشهای جانشینی وجایگشتی میتوانند با یک مدار ساده الکترونیکی پیاده سازی شوند. p-box ابزاری است که برای جایگشت بیتهای یک ورودی هشت بیتی کاربرد دارد.بود با سیم بندی و برنامه ریزی درونی این p-box قادراست هر گونه جایگشت بیتی راعملاً با سرعتی نزدیک به سرعت نور انجام بدهد چرا که هیچ گونه محاسبهای لازم نیست وفقط تأخیر انتشار سیگنال وجود دارد.این طراحی از اصل کرکهف تبعیت میکند یعنی:حمله کننده از روش عمومی جایگشت بیتها مطلّع است آن چه که او از آن خبر ندارد آن است که کدام بیت به کدام بیت نگاشته میشود کلید رمز همین است.
پروتکل رمزنگاری
به طور کلی، یک پروتکل رمزنگاری، مجموعهای از قواعد و روابط ریاضی است که چگونگی ترکیب کردن الگوریتمهای رمزنگاری و استفاده از آنها به منظور ارائهٔ یک سرویس رمزنگاری خاص در یک کاربرد خاص را فراهم میسازد.
معمولاً یک پروتکل رمزنگاری مشخص میکند که اطلاعات موجود در چه قالبی باید قرار گیرند.
چه روشی برای تبدیل اطلاعات به عناصر ریاضی باید اجرا شود
کدامیک از الگوریتمهای رمزنگاری و با کدام پارامترها باید مورد استفاده قرار گیرند
روابط ریاضی چگونه به اطلاعات عددی اعمال شوند
چه اطلاعاتی باید بین طرف ارسالکننده و دریافتکننده رد و بدل شود
چه مکانیسم ارتباطی برای انتقال اطلاعات مورد نیاز است
به عنوان مثال میتوان به پروتکل تبادل کلید دیفی-هلمن برای ایجاد و تبادل کلید رمز مشترک بین دو طرف اشاره نمود.
پروتکل تبادل کلید دیفی ، هلمن
یک پروتکل رمزنگاری است که با استفاده از آن، دو نفر یا دو سازمان، میتوانند بدون نیاز به هر گونه آشنایی قبلی، یک کلید رمز مشترک ایجاد و آن را از طریق یک مسیر ارتباطی غیر امن، بین خود تبادل نمایند. این پروتکل، اولین روش عملی مطرح شده برای تبادل کلید رمز درمسیرهای ارتباطی غیر امن است و مشکل تبادل کلید رمز در رمزنگاری کلید متقارن را آسان میسازد.
این پروتکل، در سال ۱۹۷۶ توسط دو دانشمند رمزشناس به نامهای ویتفیلد دیفی و مارتین هلمن طراحی شده و در قالب یک مقالهٔ علمی منتشر گردیده است. مطرح شدن این پروتکل، گام مهمی در معرفی و توسعهٔ رمزنگاری کلید نامتقارن به حساب میآید.
الگوریتم رمزنگاری
الگوریتم رمزنگاری، به هر الگوریتم یا تابع ریاضی گفته میشود که به علت دارا بودن خواص مورد نیاز در رمزنگاری، در پروتکلهای رمزنگاری مورد استفاده قرار گیرد. اصطلاح الگوریتم رمزنگاری یک مفهوم جامع است و لازم نیست هر الگوریتم از این دسته، به طور مستقیم برای رمزگذاری اطلاعات مورد استفاده قرار گیرد، بلکه صرفاً وجود کاربرد مربوط به رمزنگاری مد نظر است. در گذشته سازمانها و شرکتهایی که نیاز به رمزگذاری یا سرویسهای دیگر رمزنگاری داشتند، الگوریتم رمزنگاری منحصربهفردی را طراحی مینمودند. به مرور زمان مشخص گردید که گاهی ضعفهای امنیتی بزرگی در این الگوریتمها وجود دارد که موجب سهولت شکسته شدن رمز میشود. به همین دلیل امروزه رمزنگاری مبتنی بر پنهان نگاه داشتن الگوریتم رمزنگاری منسوخ شدهاست و در روشهای جدید رمزنگاری، فرض بر این است که اطلاعات کامل الگوریتم رمزنگاری منتشر شدهاست و آنچه پنهان است فقط کلید رمز است.
انواع روشهای رمزنگاری:
رمزهای جانشينی:
مثال روش سزار
مدل بهينه سزار:طول کليد 26
حفظ فراوانی حروف و کلمه ها
رمزهای جابجايی:
در اين روش حروف جابجا می شوند.
شکل بعد نمونه ای از الگوريتم جابجايی است.
رمز هاي جانشيني
در رمز جانشيني هر حرف يا گروهي از حروف به جاي حرف يا گروهي از حروف ديگر قرار مي گيرد تا پنهان سازي صورت گيرد.
در اين روش a به D & b به E & c به F ......& z به C تبديل مي شود.
به عنوان مثال :عبارتattack به DWWDFN تبدیل می شود
در مثال ها متن ساده با حروف كوچك و متن رمزي با حروف بزرگ مشخص مي شود
در این مثال کلید (k) برابر 3 است که میتواند متغیر باشد.
هر سیستم رمزنگاری که در ان یک سمبول با سمبول دیگر جایگزین می شود اصطلاحا سیستم جانشینی تک حرفی گفته میشود که در آن کلید رمز یک رشته ی 26 حرفی است.
متن ساده: a b c d e f g h I j k l m n o p q r s t u v w x y z
متن رمزي: Q W E R T Y U I O P A S D F G H J K L Z X C V B N
مثال : طبق این الگو عبارت attack به متن QZZQEA تبديل مي شود.
روش ديگر حدس زدن كلمه يا عبارت است به عنوان مثال متن رمزي زير را از يك موسسه مالي درنظر بگيريد(به صورت گروههاي پنج كاراكتري دسته بندي شده اند):
CTBMN BYCTC BTJDS QXBNS GSTJC BTSWX CTQTZ CQVUJ
QJSGS TJQZZ MNQJS VLNSX VSZJU JDSTS JQUUS JUBXJ
DSKSU JSNTK BGAQJ ZBGYQ TLCTZ BNYBN QJSW
يكي از كلماتي كه ممكن است در موسسه مالي باشد financial است
رمزهای جابجايی:
رمزهاي جانشيني ترتيب نماد هاي متن ساده را حفظ ميكنند ولي آنها را تغيير مي دهند. رمز هاي جابه جايي ترتيب حروف را عوض مي كنند ولي آنها را تغيير نمي دهند.
الگوریتمهای مورد استفاده در رمزنگاری به دستههای کلی زیر تقسیم میشوند:
توابع بدون کلید
توابع درهمساز
تبدیلهای یکطرفه
توابع مبتنی بر کلید
الگوریتمهای کلید متقارن
الگوریتمهای رمز بلوکی
الگوریتمهای رمز دنبالهای
توابع تصدیق پیام
الگوریتمهای کلید نامتقارن
الگوریتمهای مبتنی بر تجزیه اعداد صحیح
الگوریتمهای مبتنی بر لگاریتم گسسته
الگوریتمهای مبتنی بر منحنیهای بیضوی
الگوریتمهای امضای رقومی
الگوریتمهای رمزنگاری بسیار متعدد هستند، اما تنها تعداد اندکی از آنها به صورت استاندارد درآمدهاند.
یک تابع درهمسازی نوعی اینگونه کار میکند.
به هر رویه خوش تعریف یا تابع ریاضی که یک حجم زیاد داده (احتمالاً حجم نامشخصی از داده) را به یک عدد طبیعی تبدیل کند یک تابع هش یا تابع درهمسازی میگویند. عدد طبیعی حاصل از تابع هش معمولا به عنوان اندیس یک آرایه مورد استفاده است. مقادیری حاصل از این تابع را معمولا مقدار هش یا فقط هش میخوانند.
توابع درهمسازی بیشتر برای سرعت بخشیدن در جستوجوی جداول یا فشردهسازی دادهها استفاده میشوند مثل جستوجوی چیزی در یک پایگاه داده، تشخیص رکوردهای تکراری در حجم زیاد داده یا کشیدگیهای مشابه در دنباله دیانای و بسیاری کاربردهای مشابه.
انواع روشهای رمزنگاری مبتنی بر کليد:
الگوريتمهای کليد متقارن:
رمز گذاری و رمز برداری با يک کليد انجام می گيرد.
DES (Data Encryption Standard)
Triple DES
الگوريتمهای کليد نامتقارن (کليد عمومی):
هر فرد يک کليد عمومی و يک کليد خصوصی دارد.
بر اساس قوانين زير عمل می کند:
D(E(P))=P
استنتاج D از E بسيار بسيار دشوار است.
E را نمی توان به ساده گی کشف کرد.
دفی هلمن و RSA نموته ای از اين الگوريتمها ست.
کاربرد در امضای ديجيتال.
مقایسه رمزنگاری کلید متقارن و کلید نامتقارن
اصولاً رمزنگاری کلید متقارن و کلید نامتقارن دارای دو ماهیت متفاوت هستند و کاربردهای متفاوتی نیز دارند. بنا بر این مقایسه این دو نوع رمزنگاری بدون توجه به کاربرد و سیستم مورد نظر کار دقیقی نخواهد بود. اما اگر معیار مقایسه، به طور خاص، حجم و زمان محاسبات مورد نیاز باشد، باید گفت که با در نظر گرفتن مقیاس امنیتی معادل، الگوریتمهای رمزنگاری متقارن خیلی سریعتر از الگوریتمهای رمزنگاری نامتقارن میباشند.
رمزنگاری کلید متقارن
رمزنگاری کلید متقارن یا تک کلیدی، به آن دسته از الگوریتمها، پروتکلها و سیستمهای رمزنگاری گفته میشود که در آن هر دو طرف رد و بدل اطلاعات از یک کلید رمز یکسان برای عملیات رمزگذاری و رمزگشایی استفاده میکنند. در این قبیل سیستمها، یا کلیدهای رمزگذاری و رمزگشایی یکسان هستند و یا با رابطهای بسیار ساده از یکدیگر قابل استخراج میباشند و رمزگذاری و رمزگشایی اطلاعات نیز دو فرآیند معکوس یکدیگر میباشند.
واضح است که در این نوع از رمزنگاری، باید یک کلید رمز مشترک بین دو طرف تعریف گردد. چون کلید رمز باید کاملاً محرمانه باقی بماند، برای ایجاد و رد و بدل کلید رمز مشترک باید از کانال امن استفاده نمود یا از روشهای رمزنگاری نامتقارن استفاده کرد. نیاز به وجود یک کلید رمز به ازای هر دو نفرِ درگیر در رمزنگاری متقارن، موجب بروز مشکلاتی در مدیریت کلیدهای رمز میگردد.
رمز نگاری کليد نامتقارن
در روش فوق ، هر کامپيوتر دارای يک کليد رمز ( کد ) بوده که از آن برای رمزنگاری يک بسته اطلاعاتی قبل از ارسال اطلاعات بر روی شبکه و يا کامپيوتر ديگر ، استفاده می نمايد. دراين روش لازم است در ابتدا مشخص گردد که کداميک از کامپيوترها قصد مبادله اطلاعاتی با يکديگر را دارند ، پس از مشخص شدن هر يک از کامپيوترها، در ادامه کليد رمز بر روی هر يک از سيستم ها می بايست نصب گردد. اطلاعات ارسالی توسط کامپيوترهای فرستنده با استفاده از کليد رمز ، رمز نگاری شده وسپس اطلاعات رمز شده ارسال خواهند شد. پس از دريافت اطلاعات رمز شده توسط کامپيوترهای گيرنده ، با استفاده از کليد رمز اقدام به بازگشائی رمز و برگرداندن اطلاعات بصورت اوليه و قابل استفاده خواهد شد . مثلاً فرض کنيد پيامی را برای يکی از دوستان خود رمز و سپس ارسال می نمائيد . شما برای رمز نگاری اطلاعات از روشی استفاده نموده ايد که بر اساس آن هر يک از حروف موجود در متن پيام را به دو حرف بعد از خود تبديل کرده ايد. مثلاً حروف Aموجود در متن پيام به حروف C و حروف B به حروف D تبديل می گردند. پس از ارسال پيام رمز شده برای دوست خود ، می بايست با استفاده از يک روش ايمن و مطمئن کليد رمز را نيز برای وی مشخص کرد. در صورتيکه گيرنده پيام دارای کليد رمز مناسب نباشد ، قادر به رمز گشائی و استفاده از اطلاعات نخواهد بود. در چنين حالتی می بايست به دوست خود متذکر گرديد که کليد رمز ، " شيفت دادن هر حرف بسمت جلو و به اندازه دو واحد است " . گيرنده پيام با انجام عمليات معکوس قادر به شکستن رمز و استفاده از اطلاعات خواهد بود.
روش متقارن Symmetric
در این روش هر دو طرفی که قصد رد و بدل اطلاعات را دارند از یک کلید مشترک برای رمزگذاری و نیز بازگشایی رمز استفاده میکنند.در این حالت بازگشایی و رمزگذاری اطلاعات دو فرآیند معکوس یکدیگر میباشند. مشکل اصلی این روش این است که کلید مربوط به رمزگذاری باید بین دو طرف به اشتراک گذاشته شود و این سوال پیش میآید که دو طرف چگونه میتوانند این کلید را به طور امن بین یکدیگر رد و بدل کنند. انتقال از طریق انترانت و یا به صورت فیزیکی تا حدی امن میباشد اما در انتقال آن در اینترنت به هیچ وجه درست نیست.در این قبیل سیستمها، کلیدهای رمزنگاری و رمزگشایی یکسان هستند و یا رابطهای بسیار ساده با هم دارند .این سیستمها را سیستمهای متقارن یا ” تک کلیدی ” مینامیم. به دلیل ویژگی ذاتی تقارن کلید رمزنگاری و رمزگشایی، مراقبت و جلوگیری از افشای این سیستمها یا تلاش در جهت امن ساخت آنها لازم است در بر گیرنده ” جلوگیری از استراق سمع ” و ” ممانعت از دستکاری اطلاعات ” باشد .
الگوریتمهای این روش عبارتند از:
ـ DESـ 3DESـ AESـ IDEAـ Blow Fishـ RC4
این روش معمولا از روش نامتقارن کم هزینهتر است و سریع تر انجام میشود و معمولا کلیدها خیلی بزرگ هستند و الگوریتمهای آن چند هزار سال است که در حال بهبودند و به خوبی شناخته شده هستند.
روش نامتقارن Asymmetric
این روش برای حل مشکل انتقال کلید در روش متقارن ایجاد شد. در این روش به جای یک کلید مشترک از یک جفت کلید به نامهای کلید عمومی و خصوصی استفاده میشود. در این روش از کلید عمومی برای رمزگذاری اطلاعات استفاده میشود. طرفی که قصد انتقال اطلاعات را به صورت رمزگذاری شده دارد اطلاعات را رمزگذاری کرده و برای طرفی که مالک این جفت کلید است استفاده میشود. مالک کلید، کلید خصوصی را پیش خود به صورت محرمانه حفظ میکند. در این دسته، کلیدهای رمزنگاری و رمزگشایی متمایزند و یا اینکه چنان رابطه پیچیدهای بین آنها حکم فرماست که کشف کلید رمزگشایی با در اختیار داشتن کلید رمزنگاری، عملا ناممکن است.
برخی الگوریتمهای روش نامتقارن عبارتند از:
Elliptic Curve Cryptography
RSA
Blind Signatures
Diffie-Hellmanالگوریتم DH
Elgamal Discrete log Cryptosystem
Zero-knowledge Proofs
رمزنگاری کلید نامتقارن
رمزنگاری کلید نامتقارن، در ابتدا با هدف حل مشکل انتقال کلید در روش متقارن و در قالب پروتکل تبادل کلید دیفی-هلمن پیشنهاد شد. در این نوع از رمزنگاری، به جای یک کلید مشترک، از یک زوج کلید به نامهای کلید عمومی و کلید خصوصی استفاده میشود. کلید خصوصی تنها در اختیار دارنده آن قرار دارد و امنیت رمزنگاری به محرمانه بودن کلید خصوصی بستگی دارد. کلید عمومی در اختیار کلیه کسانی که با دارنده آن در ارتباط هستند قرار داده میشود. به مرور زمان، به غیر از حل مشکل انتقال کلید در روش متقارن، کاربردهای متعددی برای این نوع از رمزنگاری مطرح گردیدهاست. در سیستمهای رمزنگاری نامتقارن، بسته به کاربرد و پروتکل مورد نظر، گاهی از کلید عمومی برای رمزگذاری و از کلید خصوصی برای رمزگشایی استفاده میشود و گاهی نیز، بر عکس، کلید خصوصی برای رمزگذاری و کلید عمومی برای رمزگشایی به کار میرود.
دو کلید عمومی و خصوصی با یکدیگر متفاوت هستند و با استفاده از روابط خاص ریاضی محاسبه میگردند. رابطه ریاضی بین این دو کلید به گونهای است که کشف کلید خصوصی با در اختیار داشتن کلید عمومی، عملاً ناممکن است.
رمزنگاری کليد عمومی
در روش فوق از ترکيب يک کليد خصوصی و يک کليد عمومی استفاده می شود. کليد خصوصی صرفاً متعلق به کامپيوتر فرستنده بوده و کليد عمومی توسط کامپيوتر فرستنده در اختيار هر يک از کامپيوترهائی که قصد برقراری ارتباط با يکديگر را دارند ، گذاشته می شود. برای رمزگشائی يک پيام رمز شده ، کامپيوتر می بايست از کليد عمومی که توسط فرستنده ارائه شده، بهمراه کليد خصوص ی خود استفاده نمايد. يکی از متداولترين برنامه های رمزنگاری در اين رابطهPGP)Pretty Good Privacy) است . با استفاده از PGP می توان هر چيز دلخواه را رمز نمود.
بمنظور پياده سازی رمزنگاری کليد - عمومی در مقياس بالا نظير يک سرويس دهنده وب ، لازم است از رويکردهای ديگری در اين خصوص استفاده گردد. " امضای ديجيتال " يکی از رويکردهای موجود در اين زمينه است يک امضای ديجيتالی صرفا" شامل اطلاعات محدودی بوده که اعلام می نمايد ، سرويس دهنده وب با استفاده و بکارگيری يک سرويس مستقل با نام " امضای مجاز " ، امين اطلاعات است . "امضای مجاز " بعنوان يک ميانجی بين دو کامپيوتر ايفای وظيف می نمايد. هويت و مجاز بودن هر يک از کامپيوترها برای برقراری ارتباط توسط سرويس دهنده انجام و برای هر يک کليد عمومی مربوطه را فراهم خواهد کرد.
الگوريتم هاي رمزنگاري کليد خصوصي
رمزهای كلید خصوصی بر مبنای نوع عملكرد ، چگونگی طراحی و پیاده سازی و كاربردهایشان به دو گونه رمزهای قطعه ای و رمزهای دنباله ای تقسیم می شوند. كه در هر یك از آ نها عملكرد رمز نگاری به صورت یك عملكرد دوجانبه بین دو طرف فرستنده و گیرنده می باشد كه با ایجاد یك ارتباط اولیه با یكدیگر روی كلید خصوصی توافق میكنند به گونه ای كه دشمن آن كلید را نداند. فرستندهS میخواهد پیام m1,….mi را به گونه ای به طرف گیرنده R بفرستد كه او بتواند به محتوای پیام دست یابد و در عین حال حریف مخالف A نتواند محتوای پیام را درك كند حتی اگر A تمامی آنچه بین R و S انتقال می یابد را دریافت نماید. به همین منظور فرستنده S هر متن روشنmi را به وسیله الگوریتم رمزگذاری E وكلید خصوصی به متن رمز شده تبدیل میكند ودریافت كننده نیزكه متن رمز شده را دریافت كرده می تواند با الگوریتم رمز گشائیD و كلید خصوصی متن اصلی را بدست آورد.
مقایسه رمزنگاری الگوریتمهای متقارن و الگوریتمهای کلید عمومی:
بحثهای زیادی شده که کدام یک از این الگوریتمها بهترند اما جواب مشخصی ندارد. البته بررسی هایی روی این سوال شده به طور مثال Needham و Schroeder بعد از تحقیق به این نتیجه رسیدند که طول پیغامی که با الگوریتمهای متقارن میتواند رمزنگاری شود از الگوریتمهای کلید عمومی کمتر است. و با تحقیق به این نتیجه ریسیدند که الگوریتمهای متقارن الگوریتمهای بهینه تری هستند. اما وقتی که بحث امنیت پیش می آید الگوریتمهای کلید عمومی کارایی بیشتریدارند. و بطور خلاصه میتوان گفت که الگوریتمهای متقارن دارای سرعت بالاتر و الگوریتمهای کلید عمومی دارای امنیت بهتری هستند. در ضمن گاهی از سیستم ترکیبی از هردو الگوریتم استفاده میکنند که به این الگوریتمها الگوریتم های ترکیبی (hybrid)گفته میشود. اما اگر به طور دقیق تر به این دو نگاه کنیم آنگاه متوجه خواهیم شد که الگوریتمهای کلید عمومی و الگوریتمهای کلید متقارن دارای دو ماهیت کاملاً متفاوت هستند و کار بردهای متفاوتی دارند به طور مثال در رمزنگاریهای ساده که حجم دادهها بسیار زیاد است از الگوریتم متقارن استفاده میشود زیرا دادهها با سرعت بالاتری رمزنگاری و رمزگشایی شوند. اما در پروتکل هایی که در اینترنت استفاده میشود، برای رمز نگری کلید هایی که نیاز به مدیریت دارند از الگوریتمهای کلید عمومی استفاده میشود.
تجزیه و تحلیل رمز
تجزیه و تحلیل رمز یا شکستن رمز، به کلیه اقدامات مبتنی بر اصول ریاضی و علمی اطلاق میگردد که هدف آن از بین بردن امنیت رمزنگاری و در نهایت باز کردن رمز و دستیابی به اطلاعات اصلی باشد. در تجزیه و تحلیل رمز، سعی میشود تا با بررسی جزئیات مربوط به الگوریتم رمز و یا پروتکل رمزنگاری مورد استفاده و به کار گرفتن هرگونه اطلاعات جانبی موجود، ضعفهای امنیتی احتمالی موجود در سیستم رمزنگاری یافته شود و از این طریق به نحوی کلید رمز به دست آمده و یا محتوای اطلاعات رمز شده استخراج گردد.
تجزیه و تحلیل رمز، گاهی به منظور شکستن امنیت یک سیستم رمزنگاری و به عنوان خرابکاری و یک فعالیت ضد امنیتی انجام میشود و گاهی هم به منظور ارزیابی یک پروتکل یا الگوریتم رمزنگاری و برای کشف ضعفها و آسیبپذیریهای احتمالی آن صورت میپذیرد. به همین دلیل، تجزیه و تحلیل رمز، ذاتاً یک فعالیت خصومتآمیز به حساب نمیآید؛ اما معمولاً قسمت ارزیابی و کشف آسیبپذیری را به عنوان جزئی از عملیات لازم و ضروری در هنگام طراحی الگوریتمها و پروتکلهای جدید به حساب میآورند و در نتیجه تجزیه و تحلیل رمز بیشتر فعالیتهای خرابکارانه و ضد امنیتی را به ذهن متبادر میسازد. با توجه به همین مطلب از اصطلاح حملات تحلیل رمز برای اشاره به چنین فعالیتهایی استفاده میشود.
تحلیل رمز، در اصل اشاره به بررسی ریاضی الگوریتم (یا پروتکل) و کشف ضعفهای احتمالی آن دارد؛ اما در خیلی از موارد فعالیت خرابکارانه، به جای اصول و مبنای ریاضی، به بررسی یک پیادهسازی خاص آن الگوریتم (یا پروتکل) در یک کاربرد خاص میپردازد و با استفاده از امکانات مختلف سعی در شکستن رمز و یافتن کلید رمز مینماید. به این دسته از اقدامات خرابکارانه، حملات جانبی گفته میشود.
دو اصل اساسی در رمز نگاری :
افزونگی :
رمز نگاری پیامها باید شامل مقداری افزونگی باشد
تازگی پیامها :
باید محاسباتی صورت گیرد تا مطمئن شویم هر پیام دریافتی تازه و جدید است ( اخیرا فرستاده شده است )
افزونگی
اولین اصل آن است که تمام پیامهای رمز شده بایدشامل مقداری«افزونگی» [دادههای زائد] باشندبه عبارت دیگر لزومی ندارد که اطلاعات واقعی به همان گونه که هستند رمز و ارسال شوند. یک مثال میتواند به فهم دلیل این نیاز کمک کند. فرض کنید یک شرکت به نام TCP با۶۰۰۰۰کالااز طریق سیستم پست الکترونیکی سفارش خرید میپذیرد. برنامه نویسان شرکت TCP به خیال آن که برنامههای موثر و کار آمدی مینویسند پیامهای سفارش کالا را مشتمل بر ۱۶بایت نام مشتری و به دنبال آن سه بایت فیلد داده (شامل یک بایت برای تعدادکالا ودو بایت برای شماره کالا)در نظر میگیرد که سه بایت آخر توسط یک کلید بسیار طولانی رمزنگاری میشود واین کلید را فقط مشتری و شرکت TCP میداند.
تازگی پیامها
دومین اصل اساسی در رمزنگاری آن است که باید محاسباتی باید صورت بگیرد تا مطمئن شویم هرپیام دریافتی تازه و جدید است یا به عبارتی اخیراً فرستاده شدهاست این بررسی برای جلوگیری از ارسال مجدد پیامهای قدیمی توسط یک اخلالگر فعّال الزامی است اگر چنین بررسیهایی انجام نشود کارمند اخراجی ما قادر است با ایجاد یک انشعاب مخفی از خط تلفن پیامهای معتبری را که قبلاً ارسال شده مکرراً ارسال نماید، حتی اگر نداند محتوای ان چیست.
راهکاری برای ایجاد تازگی پیام
یک چنین محاسبهای را میتوان با قرار دادن یک مهر زمان در پیامها پیش بینی کرد به نحوی که پیامها مثلاً برای ده ثانیه معتبر باشد گیرنده پیام میتواند آن را برای حدود ده ثانیه نگه دارد تا بتواند پیامهای جدید را با آن مقایسه کرده و نسخههای تکراری را که دارای مهر زمان هستند به عنوان پیامهای قدیمی شناخته و حذف خواهند شد.
رمزهاي دنباله اي
در طراحي رمزهاي دنباله اي يك مولد بيت شبه تصادفي نقش توليد کننده رشته کليد را براي سيستم رمزدنباله اي دارد . در واقع اين مولد ميتواند مولد رشته کليد نيز محسوب شود . از ديدگاه رمز نگاري يك مولد رشته کليد امن بايد داراي سه پارامتر مهم زير باشد :
١- پريود رشته کليد توليد شده بايد به حد کافي بزرگ باشد تا با طول پيام ارسال شده سازگاري داشته باشد .
٢- دنباله بيت خروجي حاصله از مولد بايد به راحتي قابل توليد کردن باشد .
٣- بيتهاي خروجي بايد به سختي قابل پيش بيني باشند .
در واقع با در اخثيار داشتن مولد و اولين n بيت خروجي ( a(0) ، a(1) …….a(n-1 از لحاظ محاسباتي پيش بيني بيتn+1ام يعني ( a(n+1 در دنباله با احتمال بيشتر از ½ بايد غير ممكن باشد.
حال مسئله اصلي اين است با آدام مبنا واصولي ميتوان اين نتيجه گيري ر ا انجام داد که سيگنال هاي خروجي از يك مولد رشته کليد به سختي قابل پيش بيني است ؟ به طور کلي اصولي قابل بررسي و کاربردي ارائه شده است تا امنيت مولد هاي بيت را ضمانت کند . در واقع تا کنون روشهاي بسياري براي توليد رشته کليدهاي امن پيشنهاد شده است و در مقابل رمزنگاری و امنيت تبادل داده نيز تحليل هائي طرح شده است که با توجه به پيچيده ترشدن دنباله ها به صورت ماهرانه تري به تحليل دنباله ها مي پردازند. در ادامه به برخي از روشهاي توليد بيت هاي شبه تصادفي مي پردازيم.
امضای دیجیتال
امضای دیجیتال مبتنی بر الگوریتم های رمزنگاری و الگوریتم های Hashing است . به عنوان نمونه ای از الگوریتم های رمزنگار می توان به RSA و EL Gamal و الگوریتم های Hashing، MD5 و SHA اشاره کرد.
روال کار در امضای دیجیتال به این شکل است که پیش از ارسال داده ها، آنها را با استفاده از الگوریتم های Hashing به یک کد فشرده Hash تبدیل می کنند که این کد در حقیقت حاوی اطلاعات شما می باشد. مقادیر هش شده همگی طول یکسانی دارند و در صورت تغییر در اطلاعات ورودی Hash Code جدیدی تولید می شود. این الگوریتم ها همگی یک طرفه هستند، یعنی پس از کد شدن اطلاعات نمی توان از روی این کدها اطلاعات اصلی را به دست آورد و تنها در صورتی می توان آن را کدگشایی کرد که کلید این کدها را در اختیار داشت.
در جریان ارسال اطلاعات کد Hash به دست آمده از الگوریتم محاسباتی توسط کلید خصوصی به حالت رمز تبدیل می شود و همراه با کلید عمومی به انتهای داده ها اضافه شده و برای گیرنده ارسال می شود به علاوه کد Hash واقعی داده ها نیز محاسبه شده و در انتها این دو کد باهم مقایسه می شوند. اگر این دو کد همخوانی داشتند بیانگر این است که داده های ارسال شده دستکاری نشده اند و قابلیت اعتماد دارند اما در صورتی که Hash کدهای ارسالی و واقعی یکسان نباشند به معنای دستکاری در اطلاعات است و این اطلاعات دیگر قابل اطمینان نیستند. حلقه کلید را می توان مجموعه ای از کلیدها دانست، یک حلقه کلید از کلید های عمومی همه افرادی که برای شما اطلاعاتی در قالب Hashcode ارسال کرده اند است .
امضا با کلید متقارن
امضا با کلید متقارن هر شخص دارای یک کلید شخصی می باشد که فقط مرکز پیام ( BB ) آن را میداند.
در این روش شخص آلیس پیام خود را با کلید شخصی خود که فقط مرکز پیام آن را میداند تبدیل به کد کرد و مرکز پیام آن را با کلید شخصی آلیس که در اختیار دارد تیدیل به پیام اصلی کرده و دوباره آن را با کلید شخصی شخص مقصد (باب) که در اختیار دارد تبدیل به کد قابل فهم برای باب می کند.
امضا با کلید عمومی
مضا با کلید عمومی هر شخص دارای یک کلید شخصی می باشد و یک کلید عمومی که همه آنرا میدانند.
در این روش شخص آلیس پیام خود را با کلید شخصی خود تبدیل به کد کرد و بعد از این عمل آن را با کلید عمومی باب دوباره رمز نگاری کرده . بای نیز پس از دریافت آن ، پیام را با کلید شخصی خود واکشی کرده و پس از آن با کلید عمومی آلیس که در اختیار دارد تیدیل به پیام اصلی کرده که بدین ترتیب پیام برای باب قابل فهم میشود .
مباني رمزنگاري کليد عمومي
- • رمزنگاري کليد عمومي اساساً با انگيزه رسيدن به دو هدف طراحي شد:
– حل مساله توزيع کليد
– امضاي رقمي (ديجيتال)
– ديفي و هلمن توصيف كلي و اولين راه حل را در 1976 ارايه دادند.
بحث هش Hash Algorithm
روش Hash یک روش یکطرفهOne Way Function است که برای مطمئن بودن از عدم تغییر data استفاده می شود. حفظ تمامیت یا Integrity در این روش از فایل یک واحدی از دیتا ایجاد میکند که فایل هش Hash File نام دارد و حجم کوچکی دارد (در حد چند ۱۰ بایت) و در صورتیکه فایل تغییر کند Hash آن نیز تغییر میکند. در این روش هم در مبدا و هم در مقصد ، از فایلی که قرار است منتقل شود Hash گرفته میشود که باید Hash مبدا و مقصد با هم برابر باشد. اگر در طول مسیر انتقال فایل به هر دلیلی فایل تغییر کند Hash مبدا و مقصد یکی نخواهد شد. الگوریتم Hash خود روشهای گوناگونی دارد که عبارتند از:
▪ روش MD4
▪ روش MD5
▪ روش SHA-A
|
|
